23

» WarCraft 3 / Параметры нестандартных способностей

Похожие вопросы:

ответ
bladget, скорее всего (если у тебя Vista или W7 стоит), в старой папки остались "файлы совместимости", которые не удаляются просто так. В WoO много всякого мусора было...
ответ
www.wc3c.net/tools/specs тут есть
NEW Frozen Throne expansion pack format of "war3map.w3u / w3t / w3b / w3d / w3a / w3h / w3q" The object data files (thanks PitzerMike):
ответ
Через что уничтожаешь? Если через килл, то конечно умирает и нейтральный.
  1. Если наносить от какого-то даммика урон в мильены, то не умрет нейтральный.
  2. Можно от даммика развеяние нежити за 0.01 сек.
  3. Заменять можно, внося значение золота в переменную и потом, создавая новый рудник, ставить количество золота в него из переменной, благо это даже в ГУИ реализовано.
ответ
Это древняя бага ВЕ, много кто такое видел...
Ни будет робить, нужна основа где ипользуется это поле, в данном случае будут работать только поля от трансмутации ну и мб еще какое то, если близзы сделали еще какой то эффект у этой способности а потом убрали на уровне РО.
Прочие поля даже если будут записны в файл, будут тупо мусором, движек не смотрит на поля, движек смотрит на ID, от чего наследуются и какие свойста, а после работает с ними.

23

» WarCraft 3 / респавн мобов

Принятый ответ
Похожие вопросы:

ответ
Создаёшь массив юнитов и запихиваешь в него крипов. Создаёшь массив точек и запихиваешь в него позиции соответствующих крипов. Делаешь триггер, который сверяет убитого с массивом юнитов и создаёт нового в соответствующей точке из второго массива.
Если тебе нужно, чтобы юниты воскрешались через какое-то время, то тебе придется изучить основы jass, а именно - узнать, как работают локальные переменные. Создаёшь локальный номер убитого, ждешь нужное время и воскрешаешь юнита с локальным номером.
ответ
Значит криво почистил триггеры. Если крипы появляются, значит есть код, который их создает - ищи.
ответ
есть готовая наработка
ответ
Алгоритм:
  1. Накрываем весь инстанс областью в редакторе
  2. При старте карты выбираем всех мобов в области и сохраняем их тип и координаты
  3. При завершении инстанса создаём мобов заново, используя сохранённые данные
Для разрушаемых объектов алгоритм точно такой же.
ответ
Может есть код позволяющий оптимизировать "это?"
Есть, называется JASS. В соседнем вопросе делал движение.

23

» WarCraft 3 / Изменение ловкости героя

Похожие вопросы:

ответ
посмотри как у урсы сделано
Там и скорость атаки (со счетчиком ударов) есть и алгоритм добавления зеленого урона

23

» WarCraft 3 / проблема с ландшафтом

Похожие вопросы:

ответ
Знаю такой баг. Вылечтл удалением из карты всего импорта-мусора и переводов путей импорта на источник из кампании.
Т.е. этот баг возникает при очень большом весе впихиваемой в кампанию карты.
ответ
Vova47,
  1. карту сохранять надо
  2. удалить NewGen WE
ответ
Уже отвечали на подобный вопрос xgm.guru/p/wc3/174617.

23

» WarCraft 3 / Лицензия WarCraft 3

Похожие вопросы:

ответ
на вар близам похеру, пока не читерится в сетевом режиме sc2 - им насрать
ответ
Не советую делать карты на последних патчах, там близзарды сломали все что только можно было сломать. Это раз, два - для кого карта? На оф серверах все мертво, редкие мили матчи явно не ваша аудитория.
Три - 1.26 полно комьюнити + все работает, не хватает возможностей - мемхак в помощь.

23

» WarCraft 3 / Редактор ИИ

Похожие вопросы:

ответ
Dimari93, во первых
для того чтобы написать комментарий не надо цитировать предыдущий
во вторых
ai файл это файл с джасс кодом
не знаешь джасс - ничего не поймёшь в ai и следовательно не сможешь модифицировать
в общем все возможные ответы даны и разжёвано так что любой знающий основы джасс поймёт
вопрос закрыт
ответ
Самый лучший способ - сразу писать руками .ai файлы
ответ
а текстура где?
Necromancer.blp, должна лежать в корне карты (без war3mapimported)

23

» WarCraft 3 / Как исправить?

Похожие вопросы:

ответ
globals
	player Pl = null
endglobals

function abc takes nothing returns boolean
	return IsUnitEnemy(GetFilterUnit(), Pl)
endfunction

function zemle takes nothing returns nothing
local unit u = GetTriggerUnit()
local group g = CreateGroup()
local real x = GetUnitX(u)
local real y = GetUnitY(u)
local real Random = GetRandomReal(0, 360)
local boolexpr d = Condition(function abc)
set Pl = GetTriggerPlayer()

call GroupEnumUnitsInRange( g, x, y, 850, d )
call ForGroup( g, function zemlee )
call UnitApplyTimedLife(CreateUnit (p, 'h007',x,y,Random),'BFiq',0.50 ) // ???

call DestroyGroup(g)
call DestroyBoolexpr(d)
set u = null
set p = null
set g = null 
set d =null
endfunction
ответ
Alexey103:
PT153, Вау, а я не знал. Этот вопрос был создан как раз для того чтоб найти способ избежать утечек из-за добавления события, а не для того чтоб вы писали очевидные вещи. Но пока, альтернативы ни на гуи ни на джасс никто не предоставил.
дык заноси их в группу, если юнит уже в группе то не добавляешь событие
ответ
ALL_Remove = false
чтотооченьважное
ALL_Remove = true
как сложно то было

23

» WarCraft 3 / Использования юнита как снаряд

Похожие вопросы:

ответ
bifurcated, вот сделал наработку что то в роде того что ты хочеш только желательно доработать... но с этим сам почитай статьи
ах забыл рекомендую делать подобные скилы на основе "Канал"

23

» WarCraft 3 / Триггерный ИИ

Похожие вопросы:

ответ
проблема в том что они создаются триггерно
посмотри содержимое бж функции которая даёт стартовых юнитов
там вроде должно быть решение
ответ
если вы хотели делать все свое, давно следовало начинать с jass.
аура торнадо дает видимый баф который отображается в строке, но без иконки у юнита. и они стакаются.
по хорошему вам следовало бы сделать кастомные эффекты дающие характеристки а торнадо использовать лишь как дамми бафф
ответ
Steal nerves:
А поиск используешь?
вот
перевод с сайта
сайт
custom value - целочисленное значение, которое вы устанавливаете с помощью триггера в единицу. в начале всегда всегда 0 для каждого блока, но вы можете установить его для каждого целого числа с действием «unit - set custom value».
Можете также и узнать сколько у юнита этого custom value. Переводится как обычное значение. Оно есть у юнита, предмета. У каждого юнита или предмета оно может быть разным. Короче можно систему намутить
Point Value (ты наверное про нижнюю функцию, также в первый раз слышу)? так в нее триггерно ничего нельзя записать, только узнать.
native GetUnitPointValue takes unit whichUnit returns integer
вот нашел проверь
перевод
Значение точки - это целочисленное значение, заданное в редакторе объектов для типа единицы. на самом деле это значение того, сколько очков вы получите для обучения этого подразделения в конце игры, однако это бесполезно в пользовательских играх, и вы можете использовать его для настройки некоторых функций вашей карты. точечное значение единицы всегда задается в редакторе объектов и не может быть установлено на что-то еще во время игры. также все единицы того же типа получили одно и то же значение.
ответ
Неуязвимость проверяют через даммика с атакой, через приказ, сможет ли атаковать или нет, просто проверка выполнения приказа. Так же пытаются нанести урон и смотрят сколько он отнял здоровья, так можно и определить неуязвимость и вычислить резист юнита к конкретному типу урона.
ответ
Если не ошибаюсь надо текущее здоровье + текущее здоровье*0.10. Тогда будет прибавка в 10%.

23

» WarCraft 3 / Заряд и способность

Похожие вопросы:

ответ
Очень просто, проверяем каст по приказу юза предмета и если цель неподходящая то дропаем предмет юниту под ноги, а потом заставляем подобрать его.
ответ
Можно сделать через разные способности и уровни способности.
Способность 1 - уровни 1, 2, 3 - с описанием: "..осталось [1, 2, 3] заряда".
Способность 2 - уровень 1 - неактивная способность.
Логическая переменная (назовём её Cooldown).
Таймер - время = времени восстановления заряда
Триггер 1
Событие - Применение способности.
Условие - Применяемая способность = Способность 1
Действие - Установить применившему уровень Способности 1 = уровень Способности 1 минус 1.
Если Cooldown = false, то
  • Запустить таймер
  • Установить Cooldown = true
Если уровень Способности 1 = 0, то
  • Удалить Способность 1 и добавить Способность 2
Триггер 2
Событие - Время - таймер истекает.
Действие - Если уровень Способности 1 больше нуля, то
  • Установить уровень Способности 1 = уровень Способности 1 плюс 1;
  • Если уровень Способности 1 = 3, то установить Cooldown = false
. . . . . . . . Иначе - запустить таймер
  • Иначе - удалить герою Способность 2, добавить Способность 1, запустить таймер.
ответ
Steal nerves:
Summon-абилки
Вызывают существ (можно отловить через событие - "юнит призывает боевую единицу" или через событие "юнит вошел в зону" с проверкой баффа, либо классификации "иллюзия" или "вызванный" и прочее):

ПРИЗЫВ: безграничное число вызванных (вызванные юниты не умирают, если кастер умрет)

Дух воды 'AHwe' - вызывает духов воды (можно указать кол-во вызванных). Появляется рядом с кастером.
Дух Океана 'ACwe' - вызывает духов океана (можно указать кол-во вызванных). Появляется рядом с кастером.
Разведка 'AEst' - вызывает сову-разведчицу (можно указать кол-во вызванных). Появляется рядом с кастером.
Возмездие 'AEsv' - вызывает душу возмездия (можно указать кол-во вызванных). Появляется рядом с кастером.
Феникс 'AHpx' - вызывает феникса (можно указать кол-во вызванных). Появляется рядом с кастером. Больше одного феникса нельзя призвать, заменяется новым. Дело не в вызываемой абилке (скорее всего в самом фениксе), так как пробовал поменять на другого типа юнита, и тут безграничное число юнитов вызывает.
Медведь 'ANsg' - вызывает медведя (можно указать кол-во вызванных). Появляется рядом с кастером.
Кабан 'ANsq'/'Arsq' - вызывает кабана (можно указать кол-во вызванных). Появляется рядом с кастером.
Щупальце 'ACtn' - вызывает щупальце (можно указать кол-во вызванных). Появляется рядом с кастером.
Призыв слуг 'Aslp'/'ANwm' - вызывает морских существ, готовых прислуживаться (можно указать кол-во вызванных). Появляется рядом с кастером.
Сокол 'ANsw' - призывает сокола (можно указать кол-во вызванных). Появляется рядом с кастером.
Заводной зверь 'Amec' - вызывает нейтральную зверушку (здесь не указано ничего, и нельзя указать какой тип призывается. Всегда рандомно вызывает зверушку: это может быть кроликом, лягушкой, енотом, цыпленком, свиньей, овца (часто выпадают именно эти зверьки, возможно есть другие, но это не попадались мне). Вшито в игре где-то). Зато можно указать количество вызываемых зверей. Эта абилка вставлена в одноразовый предмет. Вызывает навсегда (длительность задано на "ноль", но можно задать время действия вызова). Вызывает безграничное число юнитов. Это не совсем нейтральное существо, оно может подчиняться вашим указаниям (у нее есть, конечно, бродилка. чтоб не стояло на месте). Это существо больше создано для разведки, вы можете создать неподалеку от базы противника и заслать на базу. Враги не трогают нейтралов. В чем суть этой абилки? Если создать изначально цыпленка на карте, и заслать на базу врага, этого цыпленка тут же заметят как врага, и сразу же прирежут. А если вызвать через эту способность, то враг игнорит вашу зверушку (в некоторых играх против ботов надо попробовать сделать препятствие - если узкие проходы просто загородить цыплятами, то возможно пройти будет сложно). Единственное, что настоящий игрок может заподозрить и убить.
Тварь из Недр 'ANlm' - вызывает лавовых духов огня, обитающих в магме (можно указать кол-во вызванных). Появляется рядом с кастером. Эта абилка отличается от других, поскольку она особенная. Описание: "Нанося урон жертве, она забирает часть жизненной силы. Накопив достаточно жизненной силы, она порождает вторую такую тварь" (при чем это не отслеживается событием "юнит призывает боевую единицу", отслеживает только призыв первой твари, а вот деление нет, деление отслеживается только событием "юнит входит в область"). Короче делится на две твари. Хотя по сути она не похищает жизнь, в абилке настройки ловят на количество ударов, после которого юнит делением вызывает
Характеристики:
"Данные - Деление: количество атак" - кол-во ударов, после которого тварь начнет делиться на себе подобных. Можно сразу проверить, поставив 1.
"Данные - Деление: доп. срок жизни" - таймер жизни. Это значение при делении продлевает время жизни существу, которое вызвало деление, и столько же добавляет вызванному существу.
"Данные - фактор здоровья" - процент здоровья от макс. запаса. Если первый юнит будет покосан (ранен), то при делений второй юнит имеет точно такое же здоровье. Однако, поле "фактор здоровья" пополняем первому и второму юниту часть здоровья. В этом поле стоит 0.5, значит половина от запаса пополняет обоим. (0.00 - ничего не даст, а при отрицательном значений юниты умирают)
"Данные - Задержка деления" - задержка перед тем как поделится на две части. Тварь начинает трясти, а потом делится на две части.
"Данные - количество поколений" - кастер вызвает одну тварь, назовем ее основной. Кастер повторно основных юнитов может безгранично множество вызвать. А основной юнит может вызвать делением других таких же побочных (назову их так, они ни чем не отличаются от основного. Начиная с 4 поколения, у них меняется изображение: с духа на огонька, а в остальном характеристики те же). Число поколение так понял, это сколько раз может расколоться. Например, кол-во поколений = 3, основной юнит - первое поколение, делится на два, теперь эти два юнита - второе поколение, делятся, становится 4 юнита, эти 4 юнита - третье поколение (и больше делиться не могут). Мне неизвестно точно, делится ли юнит на двух новых, или просто вызвает (почкованием размножается), больше похоже, что второе. ставил кол-во поколений 5, и поделило так много юнитов, стало всего 16. Ставил кол-во поколений 6, стало 32.
ФОРМУЛА геометрической прогрессий - макс. кол-во юнитов:
q = 2 (мы знаем, что с каждым шагом их становится в два раза больше)
b1 = 1 (сколько вначале вызываем)
bn = b1 * q ^ n-1 - формула
b5 = b1 * q ^ 5-1 = 1 * 2 ^ 4 = 16
b6 = b1 * q ^ 6-1 = 1 * 2 ^ 6 = 32
Как писал, основных может вызвать много, а значит, и с ними будет также множество побочных при делений (как видим кол-во поколений не влияет на всех, только на определенную группу).

ПРИЗЫВ: Призвать больше чем указано не может, заменяется новым. Здесь тоже не умирают, если кастер сдох

Дух волка 'AOsf'/'ACsf'/'ACs7' - вызывает духов волков. (можно указать кол-во вызванных). Появляется рядом с кастером.
Дух вепря 'ACs9' - вызывает вепря (можно указать кол-во вызванных). Появляется рядом с кастером.
Медведь (Рексар) 'Arsg' - вызывает медведя (можно указать кол-во вызванных). Появляется рядом с кастером.
Астральный зверь 'ACs8' - вызывает адских охотников (можно указать кол-во вызванных). Появляется рядом с кастером.
Охотник за головами (предмет) 'AIsh' - вызывает берсерков (можно указать кол-во вызванных). Появляется рядом с кастером.
Призыв слуг (предмет) 'AIwm' - призывает морлоков (можно указать кол-во вызванных). Появляется рядом с кастером.

ПРИЗЫВ: Предметные (здесь вы можете призвать два разных типа войск в отличий от других призывов. Эта абилки предметов одинаковы, даже приказы одинаковы. Могут вызвать бесконечное число юнитов, то есть не заменяются новыми):

Предмет: Вызов Адской гончей 'AIfh'
Предмет: Вызов Привратника Ада 'AIfu'
Предмет: Вызов Призрачного рыцаря 'AIir'
Предмет: Вызов беорна 'AIff'
Предмет: Вызов беорна-воителя 'AIuw'
Предмет: Вызов каменного голема 'AIfr'
Предмет: Вызов красного дракона 'AIfd'
Предмет: Вызов скелета 'AIfs'
Вроде как тоже не заметил уничтожения вызванного юнита после смерти героя

ПРИЗЫВ: установка вардов в точку

Невидимый страж 'Aeye' - вард духов с большим зеленым глазом, установленный на землю, наблюдает в течении длительного периода времени. Видит также невидимые войска. Устанавливается в указанную точку. Примечание: эта абилка наделяет призываемого юнита постоянной невидимостью. есть у варда скилл "Дух(видимый)" 'Aeth', который не делает невидимый, а просто наделяет указанный в характеристиках данными. Вызывает только одного.
Колдовская ловушка 'Asta' - вард-тотем. Эта способность создает вокруг юнита ловушку, которая обездвиживает (оглушает, stun) противников. Прицел, аналогично с духом-целителем, действует по области. Но этот радиус круг от прицела настраивается в самой абилке. Вызывает только одного. Примечание: эта абилка наделяет призываемого юнита невидимостью, правда не постоянная она, но можно настроить время захода в инвиз. Вот все настройки: Длительность оглушения - сколько продлится дебафф оглушения на обычных юнитах (не героях) прежде чем пройдет. Длительность воздействия (герой) - сколько продлится дебафф оглушения на герое. Длительность нормальная - время жизни призванного юнита. Задержка запуска - время после призыва и до того, как он станет невидимым. Радиус обнаружения - расстояние, на котором может быть обнаружен противник и начнет сработка ловушки. Радиус взрыва - область оглушения юнитов. Радиус оглушения у колдовской ловушки слишком маленький, поэтому не всегда кажется срабатывает (на самом деле, это работает на медленных юнитах или ловушки эффективны против милишников). Как только капкан захлопнется, тотем исчезает. Можете продлевать оглушение, чтобы юнит не сбежал, поджав хвост. Это нужно ставить новую ловушку, правда, зависит это еще и от наличия маны, и кулдауна абилки. Ловушка не срабатывает на невидимых юнитов. Можно указать юниту с напару с этой абилки "Урон от взрыва", "Урон от взрыва" срабатывает после смерти носителя, она наносит всем урона. Так как колдовская ловушка не наносит никакого урона, а лишь оглушает, то это хорошо взаимодействуется.
Дух-целитель (знахарь) 'Ahwd'/'AChw'/'AIhw' - вард духов, который устанавливается на землю знахарем. Лечит всех вокруг. Этот вызов устанавливается в указанную точку (кстати, мне так и не удалось убрать круг прицела (причем красочный у орков), или хотя бы изменить радиус круга от прицела, но это легко обойти. Канал + триггеры с dummy-кастом в точку). Вызывает только одного.
Сторожевая змея 'AOsw'/'Arsw' - вызов призрачной змеи, которая атакует любого рядышком противника. Устанавливается в указанную точку. (можно указать кол-во вызванных)
Руна стража 'APwt' - призывает неуязвимого варда-духа, наблюдающего за местностью. Этот призыв делает юнита невидимым (как и у абилки "Невидимый страж").
Темные врата 'ANdp' - в указанную точку вызывает несколько существ. Кол-во вызываемых всегда рандомно (от минимального до максимального значения. в настройках абилки указаны минимальное и максимальное значение). Здесь также можно указать несколько типов существ, это как раз необычно. Типы существ тоже рандомно спавнятся. Например, вызываю 5 существ: это может быть 3 пехотинца и 2 стрелка, так может быть и по-другому 2 стрелка и 3 пехотинца, или 4 пехотинца и 1 стрелок и так далее.
Торнадо 'ANto' - в указанную точку призывается торнадо (призвать можно только одно торнадо). Пока кастер произносит заклинания (делает channeling-анимации), вы можете управлять торнадо. Но учтите, торнадо можно прервать, если кастер прекратит кастовать. Торнадо можно заставить двигаться в любую точку, оно дамажит всех вокруг (у нее аура дамага, аура понижения скоростей, и аура, которая подбрасывает вверх вихрем).

ПРИЗЫВ: разделение юнитов

Три Стихии 'ANef'/'Acef' - герой разделяется на три существа (сам герой пропадает). Герой превращается в трех воинов, наделенных силами Огня, Земли, Ветра. Призыв трех существ ловится событием "юнит призывает боевую единицу". Если хоть один из трех вызванных существ выживет, то герой возродится. Действие завершения заклинания (это когда суммоны исчезнут, а герой появится) ловится "Юнит прекращает/завершает действие заклинания". Даже, если один из выживший будет сильно ранен, герой возродится в полном запасе хп.

ПРИЗЫВ: призыв энтов из деревьев

Сила природы 'AEfn'/'ACfr' - вызывает энтов из деревьев в указанной области, деревья как бы вырубаются, типа ожили. Можно указать количество энтов. Правда, не всегда можно вызвать нужное количество, ведь зависит от количества деревьев в указанной области. Если в абилки указано, что можно призвать 2 энтов, но у вас в указанной области стоит одно дерево, то естественно вызовите одного. Также эта заклинание вырубает все деревья, и не важно сколько энтов указано (будь 1 энт, то сможет вс деревья вырубить). Иногда энты могут застрять в деревьях, это из-за того, что радиус указанной области маленький или целились в гущу деревьев, из-за чего не выйти.

превращение в зомби

Обращение во Тьму 'ANdc'/'SNdc' - сразу пробовал сам разобраться в тестовой карте, но не получается ни на кого нацелиться. Как бы цели не менял, настройки юнитов и цели абилки не ковырял. Но на самом деле все работает. Меня сбил кривой перевод поля. Поле "Конвентирует в расу" - здесь указана раса юнита, юнит которой может превратиться в зомби. По стандарту тут стоит "Все", я подумал, что это все расы, но на самом деле не так. В варике юниты поделены на расы, есть раса "Нежить", "Альянс" и др. Есть также раса "Все" - тоже раса нейтралов. Превращение ловится событием "Юнит призывает боевую единицу". Здесь превращенный юнит не призывается на вашу сторону, он как принадлежал другому игроку, так и принадлежит (но это можно подправить). Единственное, что превратил в другого.

ПРИЗЫВ: призыв при убийстве - ловится событием "юнит призывает боевую единицу"

Призыв не работает на тех, кого нельзя оживить (у юнитов в РО "тип смерти"), короче кто не оставляет трупы.
Гидра 'Aspy'/Молодая Гидра 'Aspt'/Пауки 'Aspd'/ 'Assp'/Скелет 'Asod' - не имеет иконки. при смерти юнита вызывает других юнитов (можно указать кол-во). Обычно вызывает более мелкую версию себя (например гигантская гидра призвала две маленькие гидры)
Паразит 'Acpa'/'ANpa' - внедряет личинку паразита в тело врага, наносит урон, и, если умрет, то вылупляется юнит-паразит (автоприменение работает даже у тех, у кого нет атаки). Можно помочь добить другими юнитами, необязательно, чтобы смерть наступало именно от заклинания. Имеет очень похожие поля с отравляющими абилками, триггер ловит классификацию "отравление". Только вот настройки буфера не работают, чуть что измени в буфере, и не будет работать (там остается без изменений "убить боевую единицу"), короче не получится накладывать эффекты отравления или замедления. В настройках можно настроить снижение скорости боя и передвижения. Дебафф на цели имеет определенное время существования, если развеится, то не получить из него паразита, так как юнит жив, не умер. Если все-таки удаться убить, то после смерти призывается нужный нам юнит-паразит (отслеживается призыва событием "юнит призывает боевую единицу"). Можно указать кол-во призываемых. Этот дебафф нельзя развеить рассеивающим заклинанием. Ежесекундный урон относится к типу атаки "заклинание", не понижается защитой, является магическим уроном
Черная стрела 'ANba'/'ACbk' - Orb, наносят дополнительный урон, вешая дебафф черной стрелы. Этот дебафф остается на противнике несколько секунд, повторная атака продлевает длительность дебаффа. Дебафф ловит смерть юнита (даже, если кто-то другой (не лучник) убьет), заклинание призывает скелетов. Ловится событием "юнит призывает боевую единицу". Может с первого выстрела призвать, если урона будет достаточно чтобы сваншотить (завалить с одного удара), и не нужно тогда никакого дебаффа. Этот дополнительный урон при атаке суммируется с нанесенным уроном героя, относится к типу атаки к тому, что указан в атаке. снижается физической защитой. Является физической атакой с физическим уроном. может использовать милишник. Призыв не работает на тех, кого нельзя оживить (у юнитов в РО "тип смерти"), короче кто не оставляет трупы.
Печать Преисподней 'ANdo' - на указанного юнита вешают дебафф "Печать Преисподней", который ежесекундно наносит урон цели. Самое забавное, что длительность дебаффа задано на ноль (что значит этот дебафф вечен, его нельзя развеять или рассеять. Придеться спокойно ждать смерти, а лучше его убить поскорее.) Этот дебафф еще ловит смерть юнита (не важно отчего умер от заклинания или от руки какого-нибудь вашего левого юнита), и призывает демона "Привратника ада". Это заклинание также запрещает использовать заклинания и предметы, изучать способности, нанимать войска в зданий и изучать исследования (иконки заклинаний, исследований, нанимаемых войск и геройская кнопка "изучить" становятся не активными, даже пассивки не работают (не активны), а предметы не удается выкинуть или использовать). Ежесекундный урон относится к типу атаки "Заклинание", не понижается защитой, является магическим уроном. Урон можно убрать, поставив ноль. И призыв после смерти тоже можно убрать (копируете поле "тип боевой единицы" у способности нежити "Ядовитое облако (Дух)", оно как раз пустое, и вставляете в поле печать преисподней, тогда при смерти не будет появляться демон). Если обычный юнит (не герой) умирает, то он дропает итемы (хотя эт всегда работало). Является универсальным заклинанием, которое к тому же пробивает невосприимчивость к магий (натравить можно)

иллюзии

Иллюзия 'AOmi' - Создание иллюзорного двойника, сбивающего с толку противника. Все заклинания, наложенные на героя, при этом рассеиваются. Призыв двойника тоже считается как призыв. В характеристиках абилки можно настроить иллюзию (получал больше/меньше от противника или вообще ничего не получал от врага, также как и наносить урон врагу больше/меньше или вообще не наносит никакого урона. Одновременно с этим иллюзии теряют на панеле все активные скиллы, остаются только пассивки. В абилке можно настроить, так что вызванные илююзий не могли наносить урон (весь урон обнуляся). Но очень хорошо срабатывает обманка двойников. Например криты будут выдавать обманку, красные цифры будут всплывать, что нанесли урон, а скилл "иллюзия" по стандарту обнуляет нанесенный урон иллюзией. Есть и недостатки с морфом - он тебя выдает: если заранее создать иллюзорного двойника, а самому потом морфнуть в какого-нибудь другого юнита, то оригинал будет в другой форме, в то время как ваш двойник остается таким же. Чтобы иллюзию перевоплотить (морфнуть) используют способность "Превратиться в медведя" 'Abrf' - везде ставите 0.00 еще ставите нормальную форму, то есть ту, которую хотите перевоплотить. В триггерах этот морф сразу даем и тут же убираем. Сработает баг у иллюзии, и они перевоплотятся в другую форму. Сбивает приказ
Предмет: иллюзий 'AIil' - нужно выбрать дружественного юнита, по которому будет создана иллюзия. Призыв двойника тоже считается как призыв. В характеристиках абилки можно настроить иллюзию (получал больше/меньше от противника или вообще ничего не получал от врага, также как и наносить урон врагу больше/меньше или вообще не наносит никакого урона. Одновременно с этим иллюзии теряют на панеле все активные скиллы, остаются только пассивки. В абилке можно настроить, так что вызванные илююзий не могли наносить урон (весь урон обнуляся). Приказ = 852274, строкового приказа не существует.

воскрешение

Воскрешение 'AHre'/предметная: Младшая руна воскрешения 'APrl'/Предмет: Воскрешение 'AIrs'/'AIrx' (эта способность никого не вызывает, а только воскрешает. Но при воскрешении отслеживается призыв через событие). Воскрешает определенное кол-во юнитов (можно указать кол-во оживленных). Требует трупы.
Помощь предков 'Aast' - воскрешает одного ближайщего мертвого минотавра. Действует воскрешение на юнитов с классификацией "Минотавр". Любопытная инфа: воскрешают даже вражеских минотавров, и ожившие встают на вашу сторону (для этого нужно настроить цели абилки ).

гальванизация (что-то похожее на воскрешение)

Гальванизация 'AUan'/'ACad'/'AIhd'/Предмет: Гальванизация 'AIan' - оживляет из мертвых трупов определенное кол-во единиц (можно указать кол-во вызванных), делая их неуязвимыми. И сражаются на вашей стороне, и не важно на чьей стороне они воевали до этого. (могут наследовать улучшения, если до этого на них производил другой игрок улучшения. для этого нужно галочку поставить)

призыв с неба

Огненный голем 'AUin'/'ANin'/'SNin'/Огненный голем (предмет) 'AIin' - с неба в указанную область падает голем, который при падении наносит урона (указано в поле абилки "урон"), кроме того, в указанной области юниты оглушаются (stun) на неопределенное время. Урон от падения относится к типу атаки "Заклинание", не понижается защитой. Является магическим уроном. Можно сделать из этой абилки stun по области, но вместо голема нужно указать невидимого неуязвимого даймика (иначе stun не захочет работать). Кстати, в указанной области хорошо валит деревья, так сказать очищает место посадки
Огненный дождь (из големов) 'ANrc'/'ANr3' - с неба в указанную область в случайные точки обрушиваются несколько големов. В этой абилке стандартно указывают другую абилку 'ANin'. Так понял, эта абилка заставляет кастовать другую абилку несколько раз в случайные точки. Все настройки принимает побочной абилки: длительность существования големов, stun, урон, радиус поражения и оглушения. По стандарту скилл "огненный голем" 'ANin' в указанной области наносит дополнительный урон, оглушая всех (еще и валит деревья). Можно попробовать другие побочные абилки принять, правда большинство не хотят работать через это. Зато работают другие призывы, правда, оглушает остальных (тоже время оглушения указано в побочных). Откуда берет это оглушение, не понятно (если указал абилку "дух воды"). Жалко, что атакующие заклинания не работают. Проигрывает ли кастер channeling-анимацию - неизвестно, является ли это channeling-анимацией? Но призывает последовательно по одному голему, и пока всех не призовет, тогда не прекратить махать руками. значит можно прервать действие, тогда либо не всех големов призовет или вообще никого не успеет призвать.

ПРИЗЫВ: поднятие мертвецов - требует трупы

Оживить мертвых 'Arai'/'ACrd' (автокаст) - автокастовая способность, которая поднимает скелетов из мертвых трупов. требует трупы. Это способность позволяет оживить одновременно несколько видов (например. скелет + скелет-некромант, еще можно указать и их кол-во). Есть в абилке поле "тип войск для проверки" - тут указывается тип, что это поле значит, не знаю (работает без этого).
Оживить мертвых (предмет) 'AIrd' - эта похожая способность с автокастовой со всеми полями. Но задействована в предмете. Можно дать юниту. У него нет строкого приказа. Дебагом выявил числовой id-приказ 852624. Здесь не работает автокаст, точнее его нет - это же предмет.
Трупоеды 'AUcb' (автокаст) - вызывает жука-трупоеда. Работает при наличий трупа. Это способность позволяет оживить одновременно несколько видов (например. скелет + скелет-некромант + еще можно указать и их кол-во. В данный момент там указан один жук-трупоед, а второй тип не указан). Вызывает навсегда, типа длительность 0 стоит. Имеет лимит на вызванных. Есть галочка "Убить после смерти мага" - после смерти кастера вызванные могут умереть (у абилке стоит "нет", значит жукам повезло, не умрут). Тут все же самое, что в скилле "Оживить мертвых", отличие только в том, что убрано поле "тип войск для проверки", добавлено поля "Макс. вызванных юнитов" и "Убить после смерти мага".
Зов Возмездия 'Avng' (автокаст) - вызывает духов возмездия на месте трупа. для работы этого скила требует труп. Можно в настройках установить одновременно два разных типа, и определить их количество. Имеет лимит на вызванных. Абилка в точь-точь похожа на "трупоеды", разница лишь в том, что добавлено еще поле "тип войск для проверки", которое пустует и неизвестно что значит. Здесь вызванные духи существуют определенное время, могут погибнуть после смерти кастера. Галочка "Убить после смерти мага" - итак понятно, а вот как сделать чтобы выжили (см. пример трупоеды)? это работает на постоянных вызванных существ

особенные случаи:

Перерождение 'AOre'/'AOr3'/'ACm'/'ANr2'/'ANrn'
предмет: крест перерождения 'AIrc'
Воин, обладающий этой способностью, возрождается через несколько секунд после гибели. После гибели обычно крест на земле лежит, между смертью и воскрешением есть задержка. Недостаток этого способа в том, то нельзя отловить никаким событием:
проверял, но может быть не точным. Здесь не нашел как отследить.
  • ни "вызывает боевую единицу" (не ловит, хотя логично, мы же не вызываем юнита, а воскрешаем),
  • "юнит становится воскрешаемым" (не понятное событие, хотя склоняюсь к тому, что относится это к другой способности, например способности Артеса "Гальванизация"/ или "воскрешение" паладина),
  • "юнит начинает/прекращает/завершает воскрешение" (это относится к алтарю, когда юнит умирает, игрок заново воскрешает в алтаре),
  • "юнит начинает применять способность/приводит способность в действие/завершает применение способности" (попробовал, но увы нет),
  • "юнит входит в регион .../юнит выходит" (увы нет, обычно когда юнит умирает, он исчезает из карты. Но с этой абилкой остается в игре, крест и тень то тоже остаются),
  • "юнит умирает" (видимо, это не считается в игре смертью)
Воин, обладающий этой способностью, возрождается через несколько секунд после гибели.
В интернете (много чего искал) пишут, что перерождение ловится событием "unit life becomes < 0.0405". Тестировал, и само событие не работает. Можно только периодически проверять с помощью проверки "здоровье меньше 0.0405". Откуда взялось число 0.0405 мне неведомо, дебаг показывает, что у юнита во время реинкарнации 0.00 здоровья. Надежности как бы мало для того, чтобы верить тем (я про число 0.0405). Еще периодически можно проверять классификацией "Мертв (Dead)", "IsUnitType(GetTriggerUnit(), UNIT_TYPE_DEAD)", которая говорит что юнит мертв во время реинкарнации. Все это не работает, так как срабатывает и на обычной смерти (на юните без перерождении срабатывает это, короче ничего не дает это).
Еще одна особенность: вроде во время смерти с предметом "крест перерождения" срабатывает событие юнит "использует предмет"\"использует способность" прокатывают.
Но вот отследить момент, когда юнит умирает и воскрешается, так и не удается (только через костыли). Можно свою систему перерождения сделать.
Примечание: предметная способность от креста перерождения 'AIrc' невидима, даже, если ее дать герою. И эта способность при смерти не срабатывает, видимо связана с предметом. Предположение: чтобы заработала, надо сделать снова ее видимой.
Перерождение 'AIrb' - используется в руне подчинения. Воскрешает моба, из которого выпала эта руна в качестве лута. Лут указан в таблице предметов с выпадением шанса. Эта таблица связывает руну с мобом. При использований руны сможете призвать (воскресить) именно этого моба, который будет драться на вашей стороне.
-Если просто триггерно создать на карте, а потом подобрать и использовать. Не получится воскресить.
-Если переделать руну в обычный итем, и отдать мобу. А при убийстве подобрать и заюзать. Не получится воскресить.
-Если использовать Item pool. www.hiveworkshop.com/threads/itempools-guide.35180 Как оказалось, Item pool и таблица предметов с выпадением одно и то же, но чуть отличаются. Если задать в редакторе в свойствах выбранного юнита на карте таблицу с предметами, то работает. А триггерный аналог ItemPool никакой связи между руной и умирающим не образует, ItemPool только помогает рандомный итем достать и все =(. Получается тоже самое, при получений руна дропается, но она ничего не делает. только через таблицу в свойствах юнита можно задать.
Не ловится событием "юнит призывает боевую единицу". Зато, ловится событием "Юнит вошел в регион". Можно было просто запомнить и пересоздать триггерно этого юнита.
Злые духи (у орды)/ Москиты (у нежити) 'AOls'/'AUls' - При активации заклинания от кастера вылетают духи, которые высасывают у врагов хп. И отдают добытые хп кастеру, тем самым пополняя ему здоровье. Это особый призыв духов, но имеет некую особенность, событие триггеров "юнит - вызывает боевую единицу" не считает, что этих духов призвали. Словить можно по событию "юнит входит в регион ... ". Уход из мира живых (исчезновение) можно отследить с помощью "юнит умирает". Есть у духов способность "москиты" 'Aloc' (надеюсь знаете что это такое? это такая способность, которая скрывает полоску здоровья, делает юнитов невыделяемыми, позволяет проходить сквозь объекты. Часто эта способность используется dummy-unit. Имеет недостаток, на такого юнита нельзя натравить мышкой. Кстати, способность москиты 'Aloc' и способности 'AOls'/'AUls' тесно связаны между собой. Если удалить у призываемой саранчи способность "москиты" 'Aloc', то духи-саранчи при вызове перестают кружится, стоят на месте, короче, ничего не хотят делать. Давайте разберемся в характеристиках абилки, как она работает: "Число членов стаи" - максимум вызванных москитов, "Максимум членов стаи на цель" - максимальное возможное количество москитов, сфокусированных на одном юните. "Фактор возвращенного урона" - сколько процентов (%) урона, нанесенным москитом, превращается в здоровье, затем это здоровье отдаст кастеру при возврате к нему. "Порог возвращенного урона" - максимальное число похищенного здоровья одним москитом, необходимое для возврата к кастеру и передачи герою добытого здоровья. Если порог больше или равно кол-во похищенного хп, то москит отдаст здоровье кастеру. Москит может похитить здоровье у одной цели, если будет мало, полетит к следующей цели, и так будет накапливать похищенное здоровье. "Интервал отпускания боевой единицы" - единицы измерения (в секундах) - задержка между вызовом каждой новой саранчи. Чтобы было понятно: при вызыве появилась первая саранча, через 0.2 секунды появилась вторая, через 0.2 сек третья - и так пока все 20 не появятся. (по умолчанию количество вызванных единиц: 20, по умолчанию: 0.2 сек = >> 20 * 0.2 = 4 секунды, прежде чем последний москит появится, можно проверить дебагом). "Область воздействия" - радиус действия саранчи. показывает, как далеко саранча может отойти от заклинателя, она мгновенно возвращается, если расстояние между ее положением и заклинателем больше заданного значения. По поводу урона - урон наносят сами вызванные юниты, и весь наносимый ими урон является физическим уроном (наносится с руки), так как понижается защитой. Не сбивает текущий приказ кастера, кастер останавливается, чтобы юзнуть скилл, а потом продолжает делать дальше дела
Завод 'ANfy'/ Мини-завод 'ANsy'/'ANs1'/'ANs2'/'ANs3' - пассивка с иконкой, каждый раз создает новых маленьких заводных гоблинов. Интервал порождения - время, через которое создается новый гоблин. Есть "радиус подчинения" - если гоблин отойдет дальше этого радиуса от завода, то погибнет. Это очень похоже на призыв, там таймер жизни нацепляют, наносится дополнительный урон, как вызванным существам, от магических заклинаний. Но не ловится событием "юнит призвал боевую единицу", зато можно ловить по событию "юнит вошел в область". Неплохо сочетается со способностью "сбор" 'ARal', "Сборный пункт" - указываешь флаг в точку, где будет скапливаться все войско (как только появится рядом, он побежит к точке сбора).
Вообще есть ли такая которая делает чтобы призванное существо не умирало после смерти
Да почти все способности такие: призванное существо не умирает после смерти героя. Проверял. Есть исключение - это у трупоедов и зов возмездия. Если есть особые случаи не работы показывай, что не работает и так далее
ответ
Steal nerves:
тема абилки с зарядами. что-то код с мем хаком плодят разный
я эту фишку тестил. там по факту, значение меняется. Но визуально нет (не отрисовывается).

23

» WarCraft 3 / Как заставить юнитов использовать способности в редакторе

Похожие вопросы:

ответ
вариант А - тупо добавить аним.таг юниту, его свойства не изменятся, просто будет выглядеть как медведь
вариант Б - делать абилки в спеллбуке пермаментными, тогда они не будут пропадать

23

» WarCraft 3 / Юнит цель применяемой способности

Похожие вопросы:

ответ
А касательно остальной части, если UnitUserData нигде не используется, создаешь массив юнитов и отрядов. Массив юнитов забиваешь своими капитанами. В UnitUserData капитана пихаешь его порядковый номер в массиве. Создаешь группу юнитов для этого капитана.
  1. Добавление через каст способности.
Я бы делал через 2 разные абилки с одной и той же позицией в интерфейсе. Пока нужный тебе юнит не является частью отряда - у него таргетная абилка при касте которой на капитана он добавляется в группу соответствующего капитана и получает 2ю абилку взамен первой.
Касательно выделения этих пехотинцев - можно намутить что-то с передачей контроля или создать триггер, который будет снимать выделение с юнитов у которых есть 2я абилка. Если ты хочешь чтобы по одиночке можно было выделять пехотинцев - можешь создать переменную для каждого игрока с капитанами, куда будет просто записываться последний выбранный юнит. При снятии выделения - проверять не выбран ли этот же юнит, в случае чего не снимать выделение. Правда не уверен будет ли корректно работать :> В крайнем случае - будет работать в три клика вместо двух. Если я не ошибаюсь.
Касательно поведения этих пехотинцев - что-то реально стоящее сделать сложно. Возможно, но мне не с руки все расписывать :> Простейший вариант - приказывать пехотинцам после добавления в группу следовать за капитаном.
  1. Добавление через атаку капитана
Триггер, проверяющий что капитан получил урон или атакован, как угодно. Далее любым способом проверяешь есть ли в группе этого капитана юниты. Если нет - выбираешь всех пехотинцев N радиусе, добавляешь в отряд, заменяешь абилку/либо просто приказываешь кастануть в капитана первую абилку.
ответ
bifurcated, вот сделал наработку что то в роде того что ты хочеш только желательно доработать... но с этим сам почитай статьи
ах забыл рекомендую делать подобные скилы на основе "Канал"
ответ
Так Рёв - это способность без конкретной цели.
Можно ловить юнитов в радиусе и проверять у них наличие баффа от способности.
ответ
Все получилось. Спасибо всем за помощь)

23

» WarCraft 3 / Скилл на неуязвимость

Похожие вопросы:

ответ
Если юнит под баффом "чума" - добавить в отряд Чума
Иначе - удалить из отряда Чума
Триггер
С. Таймер Чума
Отряд выбрать юнитов Чума
Если юнит умер
Д. создать юнита в позиции выбранного юнита.
ответ
ну попробуй так
перед созданием сбрось флаг
set a=GetUnitUIDefByIdCaching(unitid)
if a>0 then
call WMem(a+0xB8,0)
endif
после создания единицу обратно пишешь, должно сработать

23

» WarCraft 3 / Как спрятать интерфейс?

Похожие вопросы:

ответ
импортируй этот файл в карту и пропиши ему путь "units\CommandFunc.txt"
Данным способом можно убрать "Патруль" у всех юнитов на карте без исключения

для тех кому интересно, как это сделано
[CmdPatrol]
Art=CommandPatrol
Buttonpos=0,-11
и ссылочка на статью на хайве

23

» WarCraft 3 / CASC

Похожие вопросы:

ответ
видимо никто.
ответ
Простой ответ - никак. Близы не планируют поддержку чего-то выходящего за рамки отдельной карты или кампании.
Сложный ответ - надоедать близам чтобы завезли такую возможность.

23

» WarCraft 3 / Модель дамми

Похожие вопросы:

ответ
Steal nerves:
раскрыть
local unit u= //кастер
local real x1=GetUnitX(u) //координаты кастера
local real y1=GetUnitY(u)

local unit t= //дайми
local real x2=GetUnitX(t)
local real y2=GetUnitY(t)

//определение расстояния
local real dx=x2-x1 //разница между концом на началом координаты
local real dy=y2-y1
local real dist = SquareRoot(dx * dx + dy * dy) //расстояние, где SquareRoot - математический корень, dx * dx - это dx в степени 2

local real angle = Atan2(dy,dx) //текущий угол между двумя точками (юнитами) в градусах

//если вы хотите текущий угол изменить, то можно изменить angle прибавив или убавив значение на несколько градусов
set angle = angle + 30. //например прибавляешь 30 градусов

set x = x + dist * Cos(angle * bj_DEGTORAD)
set y = y + dist * Sin(angle * bj_DEGTORAD)
ответ
В редакторе скелета
ответ
как-то делается, но тонкостей дохера - нельзя иметь регионы на карте, чтобы это работало, нельзя иметь события на unitInRange, и тд. и тп. Проще говоря - обломись, дешевле сделать статичный магаз где-то в неиспользуемой зоне
ответ
~8gabriel8:
ПРАВИЛА ЗАПРЕЩАЮТ НЕСКОЛЬКО ВОПРОСОВ ОДНОВРЕМЕННО!!!
Это для того сделано, чтобы бот на каждый вопрос мог показать уже решённые варианты, если сформулирован вопрос нормально, конечно. А ещё это позволит другим пользователям с аналогичными вопросами увидеть ответы на твои.
1. Можно в РО отключить урон юниту и триггерами просчитывать, кто находится перед ним в момент атаки, им будет наноситься урон.
1.5. Не понимаю проблемы, с чего это ты переключаешься на муху, атакуя огромного лорда склепа?
2. Способность Каменные доспехи Ночных Эльфов.
3. И да, и нет. Стандартными средствами сможешь убрать карту через перерисовку интерфейса, разработать и добавить новые кнопки в пул из 12, но для расширения пула или инвентаря потребуются хитрые системы, типа мемхака или DGUI, но не пользовался ими, потому не подскажу, как именно там надо действовать.
4. Можно либо отлавливать урон и прибавлять здоровье, либо делать морф в неуронящего юнита.
5. Не знаю, как именно сделано в Blade of Darkness, но есть событие на нажатие кнопок со стрелками, есть действие на переключение камеры. Просто почитай статью о работе с камерой.
6. У камеры в свойствах есть угол обзора, первую камеру ставишь вниз с углом обзора вверх, что можешь увидеть, поставив галочку в свойствах камеры, вторую камеру поднимаешь вверх и наклоняешь вниз, а в триггере ставишь применить первую камеру в течении 0 секунд, ждать 2 секунды, применить вторую камеру в течении 5 секунд, так обзор будет подниматься в положение второй камеры, ждать 5 секунд.

23

» WarCraft 3 / Как сделать моментальную атаку

Похожие вопросы:

ответ
Через дамми-каст:
Создаешь пустышку с описанием и передаешь ее герою.
При касте этого спелла создаешь даммика(невидимого/пустого юнита с нужными способностями) и кастуешь нужный спелл.
Дамми при этом занят кастом спелла, а герой может делать все что угодно

23

» WarCraft 3 / вероятность в триггерах

Похожие вопросы:

ответ
Ухаха. Парень, ознакомься, что такое утечки, прикрепление в помощь.
ответ
Ну, перенеси всё это clawbfs.ucoz.ru/forum/3-2-1 и итемы и две игровые карты с кучей режимов и сотни шапок и т. д. + в 2 раза больше новых идей clawbfs.ucoz.ru/forum/7 clawbfs.ucoz.ru/forum/16-1571-1 clawbfs.ucoz.ru/forum/9 со всеми функциями варкрафта (а их там всё же не так уж и мало) в игру на юнити или ещё куда в один присест, сделай дело доброе.
Бтв, про сбор команды - для продвинутых сущностей нередко исправлять за другими оказывается тяжелее, чем делать самому, важно создать максимально комфортные условия для созидания, вот для чего деньги не лишние, а уж дело и самому можно делать.
И, да, тема-то не про то, надо это или не надо, а про то, как лучше это сделать, я про это и в стартовом сообщении написал.
Я на крайний сам вопрос по варианту 3 проверю и/или будет сделан выбор между третьим вариантом, вторым, каким-то ещё и отказом от Cooldown Reduction, но если кто поможет - спасибо.
ответ
идем читать статьи
ищем фразы - запретить заклинание, спелл бук, триггеры
ответ
Лимит операций, обычно это беда настигает заядлых гуишников.
На jass обычно нету таких проблем.
Создайте таймер с периодом .00 сек и запускайте им функции инициализации триггеров.
функция типа InitTrig_Имя триггера - это функция инициализации триггера, она вызывается из функции InitCustomTriggers, но если этих вызовов очень много то функция упирается в лимит операций и поток завершается так и не создав все триггеры.
ответ
нормальный в варкрафте рандом, это человек делает микроскопическую выборку и удивляется результатам

23

» WarCraft 3 / помогите изучить картостроение

Похожие вопросы:

ответ
должен сразу предупредить что делать за тебя никто не будет
теперь по твоим вопросам
  1. чтобы нельзя было кликать скрываешь, даёшь москиты, делаешь видимым
  2. действие проиграть звук и указываешь твою фразу
  3. выбираем всех подходящих(враги,живые) юнитов в радиусе от точки каста и создаём по дамми юниту(юнит без модели, без атаки, с москитами, с нужной способность, время жизни юнита 1 сек) для каждого подходящего юнита приказывая дамми юниту применить нужную способность в подходящего юнита
таким образом каждый дамми юнит применит нужную способность (в твоём случае корни) в 1 подходящего юнита для которого он и был создан а потом исчезнет
  1. система отлова урона
  2. морф юнита либо орбы
всё что я не описал есть в статьях
тебе нужны первые 2 раздела ("Основы" и "Триггеры и объекты")
ответ
Вопросы - не стол заказов.
ответ
quq_CCCP:
Darknessay:
Ничего не понятно, но если не работает пеший в пешего, почему не пеший>летающий>пеший - использовать посредника?
Ващето пеший в пешего работает но не так, альт форма дамми юнит, нормальная форма тот в кого хотим превратится, основа перевоплощение, все параметры в 0.
Я думаю, тебе стоит переписать свою темку на другом языке, ибо не отвечают потому что не понимают.
ответ
ответ
Если я правильно помню, можно отследить, становиться ли золото больше определенного значения. Итак:
  • пишем текущее значение в переменную;
  • создаем триггер, который срабатывает, если значение золота становиться больше переменной.
Если триггер сработал:
  • находим разницу;
  • добавляем еще столько же;
  • обновляем переменную;
  • возможно. придется пересоздать триггер.
Также переменную придется обновлять при покупке юнитов, улучшений и прочего, то есть, при трате золота.

23

» WarCraft 3 / Ограничение для предметов

Похожие вопросы:

ответ
  1. В кампании орды за Рекксара медведь призывается без ограничения по времени.
  2. Любая способность призыва, в которой указать количество призываемых юнитов = 0.
ответ
Steal nerves:
ответы
Как объединить зелья лечения в одно с зарядом, если герой имеет одно в инвентаре и поднимает второе?
обычно используют "событие - юнит получает предмет", И на предмет, который вы получаете, ссылается переменная, которая называется item being manipulated. А юнит, который получает итем - Triggering Unit. Вы можете с помощью этой переменной итема узнать тип, сравнить. Потом циклом пробегаете по слотам (от 1 до 6), тут вся суть в одной команде триггерной (item in slot X, итем в слоте Х) и проверяете есть ли такой же итем (не забываем делать проверки, на то что этот предмет не равен item being manipulated и сравниваете не одинаковые ли типы). Если есть такой же (находите тот же тип что и item being manipulated), то от item being manipulated берете заряды и прибавляете к зарядам существующего, а потом item being manipulated удаляете. Недостаток: при заполненном инвентаре такая штука не будет работать.Не хватает свободного места.
код
цикл А от 1 до 6
if тип итема (item being manipulated) РАВНО тип итема (item in slot А) and item being manipulated НЕ РАВНО item in slot А then проверяете
set k = Charges remaining in ( item being manipulated) + Charges remaining in ( item in slot А) складываете заряды
Set charges remaining in ( item in slot А) to ( k) устанавливаете кол-во зарядов
Remove Item (item being manipulated) удаляете
endif
Есть гуишная проверка на наличие итема определенного типа в инвентаре, но она утечна. И лучше циклом прогонять.
Кстати выше пример, там вот дропают итем, зачем? чтобы проверить есть ли такой же итем. А то мб проверка на наличие итема определенного типа в инвентаре найти подобранный итем. А нам нужно знать, что есть еще один, кроме подобранного. Поэтому дропают. Только не понятно зачем создаете новый итем.
Проверка, на то что подобранный предмет имеет зарядов больше 0, говорит нам о том что это не обычный предмет.
есть статьи
Как зелье с зарядом разделить, если игрок перекладывает зелье с зарядом в другую ячейку инвентаря, если возможно, то разделение происходить должно только при нажатии какой-то клавиши?
можно перекладывать в другой слот. для этого ловят приказ. Короче смотрите системы CCS
там создают новый такой же предмет, и выделяют кол-во зарядов, деля поровну например. Абилкой например, попробуй сделать целевую активную абилку с целью предмет, указывай на инвентарь и дели.
Как это можно сделать покороче для множества разных типов предметов?
всмысле покороче? сделать под одну группу? есть же классификация. Я вот делаю так, что все предметы, которые с зарядами, должны иметь классификацию "с зарядами". Не помню точно как называется класс итемов.
Как правильно реализовать в инвентаре 7 слот?
если у героя заполнен инвентарь, то он может подобрать руну. Вот в доте система скрещивания. То же самое можно сделать и с зарядами. На земле у него лежат руны, при подборе руна исчезает. Но мы проверяем слоты, есть ли такой итем. Если есть, прибавляем заряды к существующему. Иначе создать новый. При дропе итема, оригинал подменяет снова на руну. В руну можно передать значения зарядов.
А также ограничения какие-то на количество зарядов нужно ставить или сама система выше какой-то планки не даст собирать?
до такого не доходил.
скинул примеры (хотя многие дурацкие, но делал здесь хгм в качестве ответов)
вот еще одна система hh
ответ
Рабочий лимит предметов на гуях есть в конфетных войнах близзардов, скопируйте от туда...
ответ
Name Legion:
меня не волнует уровень героя я хочу убрать этот предмет если их больше 2..уровень предмета то да..по другому я не вижу...вопрос в не в этом вопрос в том что увеличить а что убрать
пример взял отсюда
Item System
Events
Unit - A unit Acquires an item
Conditions
Actions
Set Item = 0
For each (Integer Slot_Integer) from 1 to 6, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Item level of (Item carried by (Hero manipulating item) in slot Slot_Integer)) Equal to (Item level of (Item being manipulated))
Then - Actions
Set Item = (Item + 1)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Item Greater than 1
Then - Actions
Hero - Drop (Item being manipulated) from (Hero manipulating item)
Game - Display to (All players) for 5.00 seconds the text: Can't carry more th...
Else - Actions
решил вопрос....я проверял сколько предметов такого типа предмета и 2 убрал...написал так чтобы он понимал только этот тип предмета....теперь он правильно работает....надеюсь и другим этот триггер поможет в реализации..правда его надо доработать ну тем не менее
вот
тип переменной
ответ
Name Legion:
а почему именно любой? я же прописал какой предмет нужно удалить и с каким нужно работать
ну я так и делаю...только почему то он не понимает
яяяя не знаю в чем ошибка...и по другому сделал и так и сяк и никак..он все равно уничтожает предмет....мне нужно конкретно знать где он останавливается и решить этот вопрос...
может ошибка в других триггерах?..я так не думаю...он же по любому должен увидеть уровень... да даже если я уберу hero manipulating item и оставлю только кол-во предметов он все равно уничтожит...мне нужно только 2 уничтожить а не все предметы такого типа...черт его знает
да и так пробовал...уничтожает через раз предметы..1 подбирал остается 2 подобрал уничтожает 3 взял подбирается 4 уничтожается и так до бесконечности
и этот цикл убрал...from 1 to 6....тоже нет
может убрать эту огромную строчку и тупо уничтожить предмет из item caried by hero manipulating item of type?
решил вопрос...не хватало одно if all condition are true при условии что срабатывает ИНАЧЕ при первом подбирание предмета...ИНАЧЕ НЕ ТРОГАТЬ...а то условие срабатывало как ТО и ИНАЧЕ...не хотела проходить дальше вот и уничтожало предмет..обошлось малой кровью...я забыл что одно условие не может проверить что нужно если не прописать это
выкладываю мою систему систему...теперь она правильно работает...

23

» WarCraft 3 / Краш карты

Похожие вопросы:

ответ
приложи лучше .txt файл с крашем из папки /errors
ответ
biridius:
скинь хоть сам файл ошибки, из папки Errors (в папке с варом) там текстовые файлы, найди с нужной датой/временем
иначе ничего не понятно
Может расскажите лучше как я сам с этим текстовым файлом смогу решить эту проблему)?
+ я там сверху кусок скинул
Кароче - вот

x86 Registers

EAX=00000000 EBX=00000000 ECX=0EEA0020 EDX=0EEAE0A8 ESI=001985EC
EDI=00000000 EBP=0EE70088 ESP=0019842C EIP=00000000 FLG=00010202
CS =0023 DS =002B ES =002B SS =002B FS =0053 GS =002B

Stack Trace (Manual)

Address Frame Logical addr Module
00000000 0EE70088 0000:00000000 C:\Program Files (x86)\WarCraft III - 1.26\war3.exe

Stack Trace (Using DBGHELP.DLL)

6F45862F Game.dll GameMain+4517343 (0x00000000,0x00000000,0x00000000,0x00000000)

Loaded Modules

0x00400000 - 0x0047D000 C:\Program Files (x86)\WarCraft III - 1.26\war3.exe
0x15000000 - 0x15061000 C:\Program Files (x86)\WarCraft III - 1.26\Storm.dll
0x21100000 - 0x2115F000 C:\Program Files (x86)\WarCraft III - 1.26\mss32.dll
0x22600000 - 0x22616000 C:\Program Files (x86)\WarCraft III - 1.26\redist\miles\Mssfast.m3d
0x22700000 - 0x22717000 C:\Program Files (x86)\WarCraft III - 1.26\redist\miles\Mssdolby.m3d
0x22C00000 - 0x22C18000 C:\Program Files (x86)\WarCraft III - 1.26\redist\miles\Msseax2.m3d
0x24600000 - 0x24611000 C:\Program Files (x86)\WarCraft III - 1.26\redist\miles\Reverb3.flt
0x26F00000 - 0x26F2A000 C:\Program Files (x86)\WarCraft III - 1.26\redist\miles\Mp3dec.asi
0x60000000 - 0x6005D000 C:\Program Files (x86)\WarCraft III - 1.26\ijl15.dll
0x63EB0000 - 0x647DB000 C:\WINDOWS\System32\DriverStore\FileRepository\c0318486.inf_amd64_11ba0b4b7cc81d52\atiumdag.dll
0x647E0000 - 0x6487B000 C:\WINDOWS\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.9348_none_d08c1480442bf1e1\MSVCR80.dll
0x64AC0000 - 0x64B4E000 C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.16299.64_none_2c284a8117b59840\COMCTL32.dll
0x669D0000 - 0x66B4B000 C:\WINDOWS\System32\DriverStore\FileRepository\c0318486.inf_amd64_11ba0b4b7cc81d52\aticfx32.dll
0x66FB0000 - 0x66FD6000 C:\WINDOWS\SYSTEM32\cryptnet.dll
0x66FF0000 - 0x66FF6000 C:\WINDOWS\SYSTEM32\detoured.dll
0x67000000 - 0x67020000 C:\WINDOWS\SYSTEM32\amdihk32.dll
0x679C0000 - 0x679E7000 C:\WINDOWS\System32\DriverStore\FileRepository\c0318486.inf_amd64_11ba0b4b7cc81d52\atiu9pag.dll
0x67A80000 - 0x67A88000 C:\WINDOWS\SYSTEM32\AVRT.dll
0x67A90000 - 0x67AEB000 C:\WINDOWS\System32\MMDevApi.dll
0x67AF0000 - 0x67BE4000 C:\WINDOWS\SYSTEM32\AUDIOSES.DLL
0x67BF0000 - 0x67C12000 C:\WINDOWS\System32\DEVOBJ.dll
0x6C190000 - 0x6C1AE000 C:\WINDOWS\SYSTEM32\gpapi.dll
0x6C1B0000 - 0x6C1DF000 C:\WINDOWS\system32\rsaenh.dll
0x6C280000 - 0x6C30C000 C:\WINDOWS\SYSTEM32\CoreMessaging.dll
0x6C310000 - 0x6C544000 C:\WINDOWS\SYSTEM32\CoreUIComponents.dll
0x6C550000 - 0x6C5C7000 C:\WINDOWS\SYSTEM32\TextInputFramework.dll
0x6C5D0000 - 0x6C69E000 C:\Windows\System32\Windows.UI.dll
0x6E0D0000 - 0x6E19B000 C:\WINDOWS\SYSTEM32\wintypes.dll
0x6F000000 - 0x6FBB5000 C:\Program Files (x86)\WarCraft III - 1.26\Game.dll
0x70BB0000 - 0x70C66000 C:\WINDOWS\SYSTEM32\d3d8.dll
0x70DF0000 - 0x70DF8000 C:\WINDOWS\SYSTEM32\WINNSI.DLL
0x712B0000 - 0x7138F000 C:\WINDOWS\SYSTEM32\OPENGL32.dll
0x71C40000 - 0x71C65000 C:\WINDOWS\SYSTEM32\GLU32.dll
0x71C70000 - 0x71CF0000 C:\WINDOWS\SYSTEM32\DSOUND.DLL
0x72000000 - 0x72007000 C:\WINDOWS\SYSTEM32\d3d8thk.dll
0x726B0000 - 0x726D3000 C:\WINDOWS\system32\dwmapi.dll
0x72710000 - 0x72789000 C:\WINDOWS\system32\uxtheme.dll
0x72790000 - 0x72A54000 C:\WINDOWS\SYSTEM32\WININET.dll
0x72BE0000 - 0x72C35000 C:\WINDOWS\SYSTEM32\mswsock.dll
0x73980000 - 0x73AFA000 C:\WINDOWS\System32\PROPSYS.dll
0x73C50000 - 0x73C63000 C:\WINDOWS\SYSTEM32\CRYPTSP.dll
0x73CE0000 - 0x73D08000 C:\WINDOWS\SYSTEM32\ntmarta.dll
0x73D10000 - 0x73D34000 C:\WINDOWS\SYSTEM32\dbgcore.DLL
0x73D40000 - 0x73EC1000 C:\WINDOWS\SYSTEM32\dbghelp.dll
0x73F30000 - 0x73F49000 C:\WINDOWS\SYSTEM32\bcrypt.dll
0x73F50000 - 0x73F80000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
0x74240000 - 0x74263000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll
0x742D0000 - 0x742F4000 C:\WINDOWS\SYSTEM32\WINMM.dll
0x74370000 - 0x74378000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
0x743A0000 - 0x743A8000 C:\WINDOWS\SYSTEM32\VERSION.dll
0x743B0000 - 0x743BA000 C:\WINDOWS\System32\CRYPTBASE.dll
0x743C0000 - 0x743E0000 C:\WINDOWS\System32\SspiCli.dll
0x743E0000 - 0x74423000 C:\WINDOWS\System32\sechost.dll
0x74430000 - 0x74500000 C:\WINDOWS\System32\KERNEL32.DLL
0x74500000 - 0x74522000 C:\WINDOWS\System32\GDI32.dll
0x74530000 - 0x74575000 C:\WINDOWS\System32\SHLWAPI.dll
0x74580000 - 0x74587000 C:\WINDOWS\System32\NSI.dll
0x74590000 - 0x74767000 C:\WINDOWS\System32\KERNELBASE.dll
0x747D0000 - 0x748E7000 C:\WINDOWS\System32\ucrtbase.dll
0x748F0000 - 0x7496C000 C:\WINDOWS\System32\msvcp_win.dll
0x74970000 - 0x74AB4000 C:\WINDOWS\System32\MSCTF.dll
0x74AC0000 - 0x74ACE000 C:\WINDOWS\System32\kernel.appcore.dll
0x74AE0000 - 0x74B46000 C:\WINDOWS\System32\WS2_32.dll
0x74B50000 - 0x74CD2000 C:\WINDOWS\System32\CRYPT32.dll
0x74CE0000 - 0x74CEE000 C:\WINDOWS\System32\MSASN1.dll
0x74CF0000 - 0x74DAD000 C:\WINDOWS\System32\msvcrt.dll
0x74DB0000 - 0x74DF6000 C:\WINDOWS\System32\WINTRUST.dll
0x74E00000 - 0x74F5F000 C:\WINDOWS\System32\gdi32full.dll
0x74FC0000 - 0x762F3000 C:\WINDOWS\System32\SHELL32.dll
0x76360000 - 0x76457000 C:\WINDOWS\System32\ole32.dll
0x76460000 - 0x764B7000 C:\WINDOWS\System32\bcryptPrimitives.dll
0x764C0000 - 0x76538000 C:\WINDOWS\System32\ADVAPI32.dll
0x76540000 - 0x765C8000 C:\WINDOWS\System32\shcore.dll
0x765D0000 - 0x76816000 C:\WINDOWS\System32\combase.dll
0x76820000 - 0x768F4000 C:\WINDOWS\System32\comdlg32.dll
0x76900000 - 0x769BE000 C:\WINDOWS\System32\RPCRT4.dll
0x76F60000 - 0x76F74000 C:\WINDOWS\System32\profapi.dll
0x76FB0000 - 0x76FE8000 C:\WINDOWS\System32\cfgmgr32.dll
0x76FF0000 - 0x775B6000 C:\WINDOWS\System32\windows.storage.dll
0x775C0000 - 0x775D6000 C:\WINDOWS\System32\win32u.dll
0x775E0000 - 0x77755000 C:\WINDOWS\System32\USER32.dll
0x777F0000 - 0x77872000 C:\WINDOWS\System32\clbcatq.dll
0x77880000 - 0x778C5000 C:\WINDOWS\System32\powrprof.dll
0x778D0000 - 0x778F5000 C:\WINDOWS\System32\IMM32.dll
0x77900000 - 0x77993000 C:\WINDOWS\System32\OLEAUT32.dll
0x779A0000 - 0x77B2D000 C:\WINDOWS\SYSTEM32\ntdll.dll
дальше уже - Memory Dump
Так... Щас обнаружил что это у меня такая херня со всеми картами которые я сохранял в невгене... ВСЕ запутанее и странееее...
Проблема решилась переустановкой редактора повторным сохранением карты. Дело было в конфликте программы мусорщика ВСЕМ СПС.
ответ
Опытным путем, спустя второй день нервов, нашел выход. Я снова импортировал текст в карту, и она перестала крашиться. Почему отсутствие текста влияло на неё, не знаю.
ответ
Разобрался в чем была проблема. Нашел методом исключения.

23

» WarCraft 3 / Иконки выбора героев

Похожие вопросы:

ответ
ssbbssc, WarSC, оба офнитесь
фигню несёте
судя по тому что написал афтар ему нужен чит позволяющий ему строить любого героя
но триггеров он не знает
поэтому сначала читаем статьи
потом делаем триггер
событие - игрок вводит текст -cheat
действие - создать триггерному игроку строителя способного строить особый алтарь
простейший триггер
ответ
Автор где-то накосячил. В прикрепленной карте два героя. Один из них - невыделяемый. Когда горный король получает приказ стоп - он и второй герой получают +1 очко способностей. Отдавая приказ удержания позиции - -1 очко способностей. Это дело исправно отображается на их боковых иконках.
Триггеры созданы при помощи триггерного GUI и, при этом, явно не без помощи индуса. Искать ошибку кому-либо кроме автора в нем - не рентабельно. (по факту - это проще переписать. Но у гуишников это занимает много времени, да)
ответ
8gabriel8:
Daniil33, вот заготовка для триггера:
Поясняю его
Сначала юнитам назначаются переменные, для этого есть массив unit. Массив-это множество переменных, которые разделяются с помощью индексов. Потом выбирается вампир с помощью переменной vamp, для этого vamp=unit со случайным индексом от 0 до 7. Потом в переменную vamp_player заносим игрока, который владеет будущим вампиром, это потребуется как для назначения союза с 12 игроком, так и для будущих действий. Через 20 секунд сделай что-нибудь типа засыпания паладинам, например, дай им Гоблинский телескоп с отрицательным увеличением поля зрения, дальше назначается союз vamp_player с Игрок 12. Если анимация кровавого взрыва при превращении в вампира не та, меняй. Не знаю, что ты задумал с войсками, потому просто создал рядом с вампиром четырёх скелетов. Ну и там дальше ожидание до момента, пока минимум один из юнитов других игроков не умрёт, если умер, то вампир превращается обратно в того, кем был.
Спасибо,помог сделать.

23

» WarCraft 3 / Как удалить героя из выбора таверны

Похожие вопросы:

ответ
так?
ответ
Master_Battle, во первых не юзайте вейты, во вторых все должно работать, просто через KillUnit(), попробуйте ApplyTimedLife на 0.25 сек.
ответ
фатал на GetTrigger* че-то там
ааа, это у тебя в Player() попало что-то отличное от 0-15, потому и вылет

23

» WarCraft 3 / Как сбросить способности героя?

Похожие вопросы:

ответ
~8gabriel8:
Запрещено создавать несколько вопросов в одном. Бот мог бы выдать к каждому вопросу аналогичные вопросы, которые уже задавались и были решены, а так выдал ерунду какую-то. Можно сделать всех юнитов героями, убрать у них пиктограмму в левой верхней части экрана и добавить триггер, если юнит умирает, который не относится к настоящим героям, то сменить владельца на какого-нибудь нейтрала.
Покупка способностей делается через способность Техника, поищи на сайте более подробное описание.
Возможность выделить много юнитов, как одного есть, но это очень сложный костыль надо делать. Да и не факт, что получится чисто. Надо делать модель круга выделения, делать триггер, который отлавливает выбор игрока и при наличии нужного количества однотипных юнитов убирает из выбора остальных, дав им модель круга выделения, другой триггер будет отлавливать все приказы выбранному юниту и отдавать их псевдовыбранным, третий триггер будет выделение снимать.

23

» WarCraft 3 / способность рывок

Похожие вопросы:

ответ
function GetDirection takes unit u, unit targ returns int
         local real alpha = GetUnitFacing(u)
         local real gamma = bj_RADTODEG * Atan2(GetUnitY(targ)-GetUnitY(u), GetUnitX(targ)-GetUnitX(u))
          if gamma < 0 then
            set gamma = 360. + gamma
          endif
          if (alpha < 180. and not(gamma > alpha and gamma < alpha + 180.)) or (alpha > 180. and gamma > alpha - 180. and gamma < alpha) then
            return 2
          else
            return 1
          endif
    endfunction
1 право, 2 лево, вроде бы
и обнулять реал это мощно... и хеш таблица не корректно используется...
ответ
Используй способность "ракеты" с изменённой моделью дальной атаки на огненные стрелы и запихни её в книгу заклинаний.
И дай эту книгу даммику.
ответ
Сделал набросок, используя редактор триггеров. Не забудьте включить автоматическое создание неизвестных переменных в редакторе, когда будете переносить триггеры.
Если хотите плавные анимации, то пишите на Jass.
ответ
Загугли "Jass New Gen Pack Rebuild", вылезет ссылка на сайт xgm (то есть на этот сайт) с постом о нужном тебе редакторе.
ответ
XGM Bot:
Похожие вопросы:

ответ
Используй способность "ракеты" с изменённой моделью дальной атаки на огненные стрелы и запихни её в книгу заклинаний.
И дай эту книгу даммику.
ответ
Сделал набросок, используя редактор триггеров. Не забудьте включить автоматическое создание неизвестных переменных в редакторе, когда будете переносить триггеры.
Если хотите плавные анимации, то пишите на Jass.
ответ
Да, будут баги. Чтобы их не было, сделай переменную name caster с массивом.
ответ
Если перемещать юнита периодично по координатам, а не точкам, ему нельзя будет отдать приказ перемещаться. При этом можно проигрывать нужную анимацию по индексу. Так устроенны системы перемещения на стрелках, но это можно применить и в данном случае.
Конечно, понадобятся дополнительные проверки, вроде не оглушён ли юнит и т.д.
ответ
Загугли "Jass New Gen Pack Rebuild", вылезет ссылка на сайт xgm (то есть на этот сайт) с постом о нужном тебе редакторе.